package com.ruoyi.basedata.service;

import java.util.List;
import java.util.Map;

import com.ruoyi.basedata.domain.ElectricityAreaReport;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletResponse;

/**
 * 区域能耗报Service接口
 *
 * @author gdqt
 * @date 2025-03-10
 */
public interface IElectricityAreaReportService extends IService<ElectricityAreaReport>
{
    /**
     * 查询区域能耗报
     *
     * @param id 区域能耗报主键
     * @return 区域能耗报
     */
    public ElectricityAreaReport selectElectricityAreaReportById(Long id);

    /**
     * 查询区域能耗报列表
     *
     * @param electricityAreaReport 区域能耗报
     * @return 区域能耗报集合
     */
    public List<ElectricityAreaReport> selectElectricityAreaReportList(ElectricityAreaReport electricityAreaReport);

    /**
     * 查询能耗分析
     * @param electricityAreaReport
     * @return
     */
    public Map<String, Object> getEnergyReportListForAnalysis(ElectricityAreaReport electricityAreaReport);
    /**
     * 新增区域能耗报
     *
     * @param electricityAreaReport 区域能耗报
     * @return 结果
     */
    public int insertElectricityAreaReport(ElectricityAreaReport electricityAreaReport);


    int insertElectricityAreaReportForAll(String energy_use_classification, String energy_use_item, String frozen_type, String freezeTime);

    /**
     * 修改区域能耗报
     *
     * @param electricityAreaReport 区域能耗报
     * @return 结果
     */
    public int updateElectricityAreaReport(ElectricityAreaReport electricityAreaReport);

    /**
     * 批量删除区域能耗报
     *
     * @param ids 需要删除的区域能耗报主键集合
     * @return 结果
     */
    public int deleteElectricityAreaReportByIds(Long[] ids);

    /**
     * 删除区域能耗报信息
     *
     * @param id 区域能耗报主键
     * @return 结果
     */
    public int deleteElectricityAreaReportById(Long id);

    Map<String, Object> getEnergyReportList(ElectricityAreaReport electricityAreaReport);

    /**
    * @Description: 导出数据
    * @date: 2025/3/11 14:57
    * @author: zt
    */
    void exportElectricityAreaReportList(HttpServletResponse response, ElectricityAreaReport electricityAreaReport);

    void exportElectricityAreaReportList2(HttpServletResponse response, ElectricityAreaReport electricityAreaReport);

    List<Object> getSummarizeList();

    Map<String, Object> getLineLossMonthList();

    Map<String, Object> getEnergyDayList();
}
